package com.tedu.api.thread;

/**
 * 创建线程---第三种方案：匿名内部类【推荐：创建1次】
 * Lambda---JDK1.8推出版本：简化匿名内部类写法
 * Lambda表达式也叫函数式表遍历！功能：简化匿名内部类
 *                                简化集合遍历功能
 *                                简化功能方法
 *                                简化IO流功能
 * Lambda表达式语法：（）->{}，属于功能接口！
 * （）代表
 * ->代表
 * {}代表
 * 需求：创建接口 Insert 插排  提供：电
 *      子实现类 Computer 电脑
 *      子类实现接口--完成对象创建【创建1次】
 *      匿名内部类方式完成对象创建
 *      Lambda表达式结构完成对象创建
 *
 */
public class LambdaAPI {
     public static void main(String[] args) {
          //创建插排接口--必须使用子实现类
          //Insert cp=new Computer(); //多态：造型
         // cp.Dian();
          //子实现类---创建1次对象---匿名内部类:支持接口以及抽象类创建
          /*Insert cp=new Insert() {
               public String Dian(long money,char ch) {
                    return "电脑通电了";

               }
          };
          cp.Dian(100,'2');*/
          //使用Lambda表达式 简化方法

          Insert cp=(money,ch)->"电脑通电了";;
          cp.Dian(100,'2');

          /** Lambda表达式---匿名内部类【接口创建】
           *  （）代表  方法中参数，情况①：无参数，不可以删除
           *                        ②：有参数，有1个参数,括号删除
           *                        ③：有参数，有2个参数以上，不可以删除
           *  ->代表 new对象的过程
           *  {}代表 方法中内容，情况
           *            ①：看方法返回值 void 空 传入输出语句，删除花括号
           *            ②：看方法返回值 Java数据类型  return Java数据类型；
           *                        【两种：八大基本数据类型|引用类型】
           *                          返回值 存在return  不可以删除【推荐】
           *                        2.1  返回值 不存在return  不可以删除【不推荐】
           *            ③：看方法返回值  返回值集合  不可以删除花括号
           */
     }
}
//创建插排--接口
interface Insert{
     public String Dian(long money,char ch);
}
//创建插排实现类--电脑类
/*class Computer implements Insert{
     public void Dian() {
          System.out.println("电脑通电开机了~");
     }
}*/
